package framework.util.shiro;

import framework.bo.SysUser;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.crypto.hash.SimpleHash;

/**
 * @author 吴宇亮 on 2019/7/9 0009 上午 11:35
 */
public class _ShiroUtil {

    protected static final String CURRENT_USER = "currentUser";

    /**
     * 获取当前用户。具体实现是：当前用户是在登录的时候，在自定义realm里缓存的。
     * @see framework.util.shiro.MysqlRealm#doGetAuthenticationInfo
     */
    public static SysUser getCurrentUser(){
        return (SysUser)SecurityUtils.getSubject().getSession().getAttribute(CURRENT_USER);
    }

    /**
     * 盐值加密
     * @param password 明文密码
     * @param salt 盐值
     * @return 返回加密后的密码
     */
    public static String encodeSalt(String password, String salt){
        //加密方法，加密次数
        String algorithmName = "MD5";
        int hashIterations = 103;

        SimpleHash result = new SimpleHash(algorithmName, password, salt, hashIterations);
        return result.toString();
    }


}
